/*************************************************************************
	> File Name: oj-528.cpp
	> Author: Wang Bo
	> Mail: 1276106221@qq.com
	> Created Time: 2020年11月20日 星期五 18时53分55秒
 ************************************************************************/

#include <iostream>
#include <queue>
using namespace std;

struct node {
    int now, step;
};

int n, x, y, check[105], arr[105][105];

int main() {
    cin >> n >> x >> y;
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n; ++j) {
            cin >> arr[i][j];
        }
    }
    queue<node> que;
    //从编号x的人开始搜索
    que.push((node){x, 0});
    //去重
    check[x] = 1;
    while (!que.empty()) {
        node temp = que.front();
        que.pop();
        //遍历邻接矩阵的行
        for (int i = 1; i <= n; ++i) {
            if (arr[temp.now][i] == 1 && check[i] == 0) {
                //如果是最终要认识的人
                if (i == y) {
                    //
                    cout << temp.step << endl;
                    return 0;
                }
                //如果不是最终要认识的人
                que.push((node){i, temp.step + 1});
                check[i] = 1;
            }
        }
    }
    cout << 0 << endl;
    return 0;
}
